package com.supermarket.mapper;

import com.supermarket.entity.Cart;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 购物车Mapper接口
 */
@Mapper
public interface CartMapper {
    
    /**
     * 获取用户购物车列表
     */
    List<Cart> selectByUserId(Integer userId);
    
    /**
     * 根据ID查询购物车
     */
    Cart selectById(Integer id);
    
    /**
     * 根据用户ID和商品ID查询购物车
     */
    Cart selectByUserIdAndCommodityId(@Param("userId") Integer userId, @Param("commodityId") Integer commodityId);
    
    /**
     * 添加购物车
     */
    int insert(Cart cart);
    
    /**
     * 更新购物车
     */
    int update(Cart cart);
    
    /**
     * 更新购物车商品数量
     */
    int updateQuantity(@Param("id") Integer id, @Param("quantity") Integer quantity);
    
    /**
     * 更新购物车商品选中状态
     */
    int updateSelected(@Param("id") Integer id, @Param("selected") Boolean selected);
    
    /**
     * 批量更新购物车商品选中状态
     */
    int updateSelectedBatch(@Param("userId") Integer userId, @Param("selected") Boolean selected);
    
    /**
     * 删除购物车
     */
    int deleteById(Integer id);
    
    /**
     * 批量删除购物车
     */
    int deleteBatch(List<Integer> ids);
    
    /**
     * 清空用户购物车
     */
    int deleteByUserId(Integer userId);
} 